/**
 * 
 */
package com.proyecto.personas.modelo.servicio;

import com.proyecto.core.modelo.excepciones.GeneralException;
import com.proyecto.core.modelo.servicio.ServicioGenerico;
import com.proyecto.personas.modelo.dto.CorrelativosGenerales;
import com.proyecto.personas.modelo.dto.CorrelativosGeneralesId;

/**
 * @author javaOne
 *
 */
public class ServicioCorrelativosGenerales extends ServicioGenerico {

	/**
	 * 
	 */
	public ServicioCorrelativosGenerales() {
		// TODO Auto-generated constructor stub
	}

	public String obtenerProximoNumeroComoString(CorrelativosGeneralesId correlativosGeneralesId, boolean iniciaTransaccion) throws GeneralException{
		String correlativoString = "";
		CorrelativosGenerales correlativo = null;
		correlativo = (CorrelativosGenerales) super.consultar(correlativosGeneralesId);
		if (correlativo.getSecuenciaentero() == null){
			correlativo.setSecuenciaentero(0L);
		}
		correlativo.setSecuenciaentero(correlativo.getSecuenciaentero() + 1L);
		modificar(correlativo, iniciaTransaccion);
		if (correlativo.getPrefijo()!= null){
			correlativoString = correlativo.getPrefijo(); 
		}
		correlativoString = correlativoString + super.numeroString(correlativo.getSecuenciaentero(), correlativo.getCorrelativoformato());
		if (correlativo.getSufijo()!= null){
			correlativoString = correlativoString + correlativo.getSufijo(); 
		}
		
		return correlativoString;
	}
	
	public Long obtenerProximoNumeroComoEntero(CorrelativosGeneralesId correlativosGeneralesId, boolean iniciaTransaccion) throws GeneralException{
		Long correlativoEntero = 0L;
		CorrelativosGenerales correlativo = null;
		correlativo = (CorrelativosGenerales) super.consultar(correlativosGeneralesId);
		if (correlativo.getSecuenciaentero() == null){
			correlativo.setSecuenciaentero(correlativoEntero);
		}

		correlativoEntero = correlativo.getSecuenciaentero() + 1L;
		correlativo.setSecuenciaentero(correlativoEntero);
		super.modificar(correlativo, iniciaTransaccion);

		return correlativoEntero;
	}
}
